The disclosed embodiments of the present invention relate to decoding blocks of an encoded frame, and more particularly, to a video decoding apparatus for selectively bypassing processing of residual values and/or buffering of processed residual values by detecting whether all of the residual values have the same value (e.g., zero) and related video decoding method thereof.
Regarding some coding standards, such as MPEG 1/2/4, WMV, H.264, RM, AVS, etc., a coded block pattern (CBP) may be used to indicate which blocks within a macroblock have non-zero residual values. For example, in accordance with H.264 standard, a CBP may include 6 bits. When one bit of the CBP is equal to zero, it means that block(s) indicated by the CBP bit should have no non-zero residual value. Thus, decoding of such block(s) is allowed to be skipped. For example, when processing a block indicated by a CBP bit equal to zero, the decoder may skip the inverse scan, the inverse quantization, and the inverse transform. However, under certain conditions, a block indicated by a CBP bit equal to one may contain all zero residual values. Hence, even thought the block does not have any non-zero residual value, the decoding operation, including the inverse scan, the inverse quantization, and the inverse transform, is not skipped. Moreover, a block may include a plurality of sub-blocks. Skipping the decoding of part of the sub-blocks that has all zero residual values is not allowed when a corresponding CBP bit of the block is set to one due to at least one non-zero residual value included in the remaining part of the sub-blocks.
Regarding other coding standards, no CBP is used. Taking the VP8 decoding for example, when processing a block having one DC residual value or all zero residual values, the decoder may skip the inverse scan and the inverse quantization, and do the arithmetic mean in the inverse transform.
Even though a block to be decoded actually contains all zero residual values, it is possible that a conventional decoder does not skip the decoding operation of the block, leading to degraded decoding performance.